Exception Handling একটি গুরুত্বপূর্ণ কৌশল যা প্রোগ্রামিংয়ে বিভিন্ন ধরনের ত্রুটি (error) বা ব্যতিক্রম (exception) সঠিকভাবে পরিচালনা করতে ব্যবহৃত হয়। যখন আপনার কোডের মধ্যে কোনো অপ্রত্যাশিত ত্রুটি ঘটে, তখন আপনি সেই ত্রুটিকে handle করে প্রোগ্রামের চলমানতা বজায় রাখতে পারেন। C# এ exception handling সাধারনত try
, catch
, finally
ব্লক ব্যবহার করে করা হয়।
Exception Handling এর উদ্দেশ্য হলো:
C# এ exception handling এর প্রধান উপাদান হচ্ছে try
, catch
এবং finally
ব্লক।
finally
ব্যবহার করতে পারেন। এটি সব সময় execute হবে, ত্রুটি ঘটুক বা না ঘটুক।try
{
// কোড যা ত্রুটি ঘটাতে পারে
int result = 10 / 0; // Divide by zero exception
}
catch (DivideByZeroException ex)
{
// ত্রুটি ধরা হলে এই কোডটি চলবে
Console.WriteLine("Error: " + ex.Message);
}
finally
{
// এই কোডটি সব সময় চলবে, ত্রুটি ঘটুক বা না ঘটুক
Console.WriteLine("Operation Completed");
}
এখানে:
try
ব্লকে কোড লেখা হয়েছে, যা ত্রুটি ঘটাতে পারে।catch
ব্লকটি DivideByZeroException
এর ক্ষেত্রে ত্রুটিটি ধরবে এবং সেই ত্রুটির বার্তা প্রিন্ট করবে।finally
ব্লকটি সব সময় execute হবে, এখানে "Operation Completed"
বার্তা প্রিন্ট করা হয়েছে।আউটপুট:
Error: Attempted to divide by zero.
Operation Completed
একই try
ব্লকের মধ্যে একাধিক catch
ব্লক ব্যবহার করা যেতে পারে, যা বিভিন্ন ধরনের exception ধরতে সক্ষম।
try
{
int[] numbers = { 1, 2, 3 };
Console.WriteLine(numbers[5]); // IndexOutOfRangeException
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine("Index error: " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("General error: " + ex.Message);
}
finally
{
Console.WriteLine("Finally block executed");
}
এখানে:
IndexOutOfRangeException
ধরা হলে প্রথম catch
ব্লকটি কার্যকর হবে।catch
ব্লকটি ত্রুটিটি ধরবে।আউটপুট:
Index error: Index was outside the bounds of the array.
Finally block executed
Exception object এর মধ্যে ত্রুটির বিস্তারিত তথ্য থাকে, যেমন:
try
{
int[] numbers = { 1, 2, 3 };
Console.WriteLine(numbers[5]); // IndexOutOfRangeException
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
Console.WriteLine("Stack Trace: " + ex.StackTrace);
}
আউটপুট:
Error: Index was outside the bounds of the array.
Stack Trace: at ExceptionHandlingExample.Program.Main() in C:\Path\To\Program.cs:line 10
আপনি নিজে custom exception তৈরি করতে পারেন, যদি প্রোগ্রামে বিশেষ কোনো ত্রুটি চিহ্নিত করতে চান। এর জন্য একটি ক্লাস তৈরি করে Exception
ক্লাসকে ইনহেরিট করতে হয়।
public class CustomException : Exception
{
public CustomException(string message) : base(message)
{
}
}
try
{
throw new CustomException("This is a custom exception");
}
catch (CustomException ex)
{
Console.WriteLine("Caught: " + ex.Message);
}
এখানে:
CustomException
ক্লাসটি Exception
থেকে ইনহেরিট করা হয়েছে।throw
কিওয়ার্ড ব্যবহার করে একটি custom exception তৈরি করা হয়েছে।আউটপুট:
Caught: This is a custom exception
catch (Exception ex)
থেকে বিরত থাকুন, কারণ এটি সব ধরনের exception ধরবে এবং সমস্যার উৎস চিহ্নিত করা কঠিন হবে।catch
ব্লক ব্যবহার করবেন না, কারণ এটি সমস্যা লুকাতে পারে এবং ডিবাগিং কঠিন করে তোলে।Exception handling প্রোগ্রামিংয়ের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ। C# এ try-catch
ব্লক ব্যবহার করে ত্রুটি গুলি সঠিকভাবে ধরতে এবং সেগুলোর কার্যকরী সমাধান দিতে সাহায্য করে। finally
ব্লকটি আপনি যেকোনো ধরনের রিসোর্স ফ্রি বা ক্লিনআপ করতে ব্যবহার করতে পারেন। এছাড়া custom exceptions তৈরি করে আপনি আরও নির্দিষ্ট ও কাস্টমাইজড ত্রুটি বার্তা তৈরি করতে পারেন।
common.read_more